#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>

int unval;
int gval = 100;

int main()
{
    int a,b,c;
    printf("stack addr: %p\n", &a);
    printf("stack addr: %p\n", &b);
    printf("stack addr: %p\n", &c);

    int *heap = (int*)malloc(10*sizeof(int));
    printf("heap addr:  %p\n", heap);

    printf("unval addr: %p\n", &unval);
    printf("gval addr:  %p\n", &gval);
    printf("code addr:  %p\n", main);



    // printf("我是一个进程, pid: %d, ppid: %d\n", getpid(), getppid());

    // pid_t id = fork();
    // if (id == 0)
    // {
    //     //child
    //     while(1)
    //     {
    //         printf("我是一个子进程, pid: %d, ppid: %d, gval: %d, &gval: %p\n", getpid(), getppid(), gval, &gval);
    //         gval++;
    //         sleep(1);
    //     } 
    // }
    // else
    // {
    //     while(1)
    //     {
    //         printf("我是一个父进程, pid: %d, ppid: %d, gval: %d, &gval: %p\n", getpid(), getppid(), gval, &gval);
    //         sleep(1);
    //     }
    // }
}